/**
 * Copyright &copy; 2012-2017 <a href="https://vivo.com">vivo</a> All rights reserved.
 */
package com.vivo.employee.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.thinkgem.jeesite.modules.sys.entity.Office;
import org.hibernate.validator.constraints.Length;
import com.thinkgem.jeesite.common.utils.excel.annotation.ExcelField;

import com.thinkgem.jeesite.common.persistence.DataEntity;

import javax.validation.constraints.NotNull;
import java.util.Date;

/**
 * 校招记录Entity
 * @author jyangye
 * @version 2017-12-28
 */
public class ViEmpSchoolRecruit extends DataEntity<ViEmpSchoolRecruit> {
	
	private static final long serialVersionUID = 1L;

	private String title;		// 标题
	private Date recruitDate;		// 招聘日期
	private String recruitPlace;		// 招聘地点
	private String recruitType;		// 招聘类型
	private String charge;		// 招聘参与人
	private int peopleCount;		// 招聘人数
	private Double cost;		// 招聘费用合计
	private int applicants;		// 参加招聘人数
	private int resumeCount;		// 收集简历数量
	private int interviewCount;		// 初面人数
	private int interviewQualifiedCount;		// 初面合格人数
	private String advice;		// 此次问题及改善意见
	private String isActive;		// 是否生效

    private Date beginRecruitDate; // 开始招聘时间
    private Date endRecruitDate; // 结束招聘日期

    private Office comp;
	
	public ViEmpSchoolRecruit() {
		super();
	}

	public ViEmpSchoolRecruit(String id){
		super(id);
	}

    public Office getComp() {
        return comp;
    }

    public void setComp(Office comp) {
        this.comp = comp;
    }

    @Length(min=1, max=64, message="标题长度必须介于 1 和 64 之间")
	@ExcelField(title="*标题", align=2, sort=20)
	public String getTitle() {
		return title;
	}

	public void setTitle(String title) {
		this.title = title;
	}

    @JsonFormat(pattern = "yyyy-MM-dd")
    @NotNull(message="招聘日期不能为空")
    @ExcelField(title="*招聘日期", align=2, sort=40)
	public Date getRecruitDate() {
		return recruitDate;
	}

	public void setRecruitDate(Date recruitDate) {
		this.recruitDate = recruitDate;
	}
	
	@Length(min=1, max=128, message="招聘地点长度必须介于 1 和 128 之间")
	@ExcelField(title="*招聘地点", align=2, sort=40)
	public String getRecruitPlace() {
		return recruitPlace;
	}

	public void setRecruitPlace(String recruitPlace) {
		this.recruitPlace = recruitPlace;
	}
	
	@Length(min=1, max=32, message="招聘类型长度必须介于 1 和 32 之间")
	@ExcelField(title="*招聘类型", align=2, sort=50, dictType = "emp_recruit_type")
	public String getRecruitType() {
		return recruitType;
	}

	public void setRecruitType(String recruitType) {
		this.recruitType = recruitType;
	}
	
	@Length(min=1, max=64, message="招聘参与人长度必须介于 1 和 64 之间")
	@ExcelField(title="*招聘参与人", align=2, sort=60)
	public String getCharge() {
		return charge;
	}

	public void setCharge(String charge) {
		this.charge = charge;
	}

	@ExcelField(title="*去招聘人数", align=2, sort=70)
	public int getPeopleCount() {
		return peopleCount;
	}

	public void setPeopleCount(int peopleCount) {
		this.peopleCount = peopleCount;
	}
	
	@ExcelField(title="*招聘费用合计", align=2, sort=80)
	public Double getCost() {
		return cost;
	}

	public void setCost(Double cost) {
		this.cost = cost;
	}

	@ExcelField(title="*应聘人数", align=2, sort=90)
	public int getApplicants() {
		return applicants;
	}

	public void setApplicants(int applicants) {
		this.applicants = applicants;
	}

	@ExcelField(title="*收集简历数量", align=2, sort=100)
	public int getResumeCount() {
		return resumeCount;
	}

	public void setResumeCount(int resumeCount) {
		this.resumeCount = resumeCount;
	}

	@ExcelField(title="*初面人数", align=2, sort=110)
	public int getInterviewCount() {
		return interviewCount;
	}

	public void setInterviewCount(int interviewCount) {
		this.interviewCount = interviewCount;
	}

	@ExcelField(title="*初面合格人数", align=2, sort=120)
	public int getInterviewQualifiedCount() {
		return interviewQualifiedCount;
	}

	public void setInterviewQualifiedCount(int interviewQualifiedCount) {
		this.interviewQualifiedCount = interviewQualifiedCount;
	}
	
	@Length(min=0, max=256, message="此次问题及改善意见长度必须介于 0 和 256 之间")
	@ExcelField(title="此次问题及改善意见", align=2, sort=130)
	public String getAdvice() {
		return advice;
	}

	public void setAdvice(String advice) {
		this.advice = advice;
	}

	public String getIsActive() {
		return isActive;
	}

	public void setIsActive(String isActive) {
		this.isActive = isActive;
	}


    public Date getBeginRecruitDate() {
        return beginRecruitDate;
    }

    public void setBeginRecruitDate(Date beginRecruitDate) {
        this.beginRecruitDate = beginRecruitDate;
    }

    public Date getEndRecruitDate() {
        return endRecruitDate;
    }

    public void setEndRecruitDate(Date endRecruitDate) {
        this.endRecruitDate = endRecruitDate;
    }
}